home *** CD-ROM | disk | FTP | other *** search
/ PC Graphics Unleashed / PC Graphics Unleashed.iso / ch18 / rtrace / readme.dj < prev    next >
Text File  |  1993-06-03  |  14KB  |  261 lines

  1.  
  2. This is the README file for DJ's GCC port to DOS ("djgpp")
  3. Contents:
  4.     * Overview
  5.     * What's available
  6.     * How to install
  7.     * Deviations and Caveats
  8.     * Copyright information
  9. Disclaimer: This software is distributed WITHOUT ANY WARRANTY; without
  10. even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  11. PURPOSE.
  12. DJ Delorie
  13. USmail: 24 Kirsten Ave, Rochester, NH 03867-2954, USA
  14. email:  dj@ctron.com
  15. mailing list: djgpp@sun.soe.clarkson.edu (listserv@sun.soe.clarkson.edu)
  16.      djgpp-announce@sun.soe.clarkson.edu (listserv@sun.soe.clarkson.edu)
  17. Overview:
  18. This package contains a 32-bit 80386 DOS extender with symbolic
  19. debugger, a C/C++ compiler with utilities, development libraries, and
  20. source code.  It generates full 32-bit programs and supports full
  21. virtual memory with paging to disk. 
  22. Requirements:
  23. A 80386-based IBM compatible PC or PS/2, approximately 4-5Mb of hard
  24. drive space, and 512K RAM.  Available extended (or expanded under VCPI)
  25. memory is strongly recommended.
  26. Supported Wares:
  27. * Up to 128M of extended memory (expanded under VCPI)
  28. * Up to 128M of disk space used for swapping
  29. * SuperVGA 256-color mode up to 1024x768
  30. * 80387
  31. * XMS & VDISK memory allocation strategies
  32. * VCPI programs, such as QEMM, DESQview, and 386MAX
  33. * DPMI programs, such as Windows 3.x, OS/2, and QDPMI
  34. Unsupported:
  35. * Multiprocessing (fork())
  36. File location:
  37.     host:      omnigate.clarkson.edu
  38.     login:     ftp
  39.     password:  send your e-mail address
  40.     directory: ~ftp/pub/msdos/djgpp
  41. Many thanks to the sysops at Clarkson for providing a home to djgpp!
  42. As a convenience to non-FTP users, djgpp is also stored on Clarkson's
  43. archive server.  To access the archive server, do this:
  44.    % mail archive-server@omnigate.clarkson.edu
  45.    Subject: <none>
  46.    help
  47.    index msdos/djgpp
  48.    ^D
  49. NOTE: In accordance with FSF CopyLeft, you are not allowed to upload
  50. this program to a distribution site unless you upload the source modules
  51. with any binary module you upload.  Please read the file COPYING for
  52. more details. 
  53. NOTE: If your application links in object modules that were written by
  54. FSF, your application counts as a "derived work" and must obey the
  55. provisions of the FSF Copyrights.  See the file COPYING for details. 
  56. All FSF source-based libraries are in the file libgpl.a.  The mere act
  57. of compiling does not affect the copyright status of your program. 
  58. INSTALLING:
  59. To install, you must do the following:
  60. * Create a "temp" directory, like c:\tmp.
  61. * Create a directory to install in, like c:\djgpp.
  62. * Un-zip the appropriate zipfiles in the install directory.
  63.     C:\DJGPP> pkunzip -d -o djdev110.zip
  64.     C:\DJGPP> pkunzip -d -o gas221bn.zip
  65.     C:\DJGPP> pkunzip -d -o gcc241bn.zip
  66. * Add the following lines to C:\CONFIG.SYS file (or edit existing
  67.   files= and shell= lines as appropriate).  The files= line prevents "too many
  68.   open files" errors when compiling, and the shell= line prevents "Out of
  69.   environment space" errors when setting lots of environment variables.
  70.     files=15
  71.     shell=c:\command.com c:\ /e:600 /p
  72. The values 15 and 600 are close to minimal.  You may want to increase them
  73. to provide a little more margin.
  74. * Add the following lines to C:\AUTOEXEC.BAT:
  75.     set COMPILER_PATH=c:/djgpp/bin
  76.     set C_INCLUDE_PATH=c:/djgpp/include
  77.     set CPLUS_INCLUDE_PATH=c:/djgpp/cplusinc;c:/djgpp/include
  78.           ^^^ only needed if you are compiling c++ programs
  79.     set OBJC_INCLUDE_PATH=c:/djgpp/include
  80.           ^^^ only needed if you are compiling objective-C programs
  81.     set OBJCPLUS_INCLUDE_PATH=c:/djgpp/include
  82.           ^^^ only needed if you are compiling objective-C++ programs
  83.     set LIBRARY_PATH=c:/djgpp/lib
  84.     set TMPDIR=c:/tmp
  85.              ^^^ this is where gcc's temp files go
  86.     set GO32TMP=c:/tmp
  87.                 ^^^ this is where your paging file goes - if not set, the
  88.                     variables TMP and TEMP are checked in that order
  89.     set GO32=ansi driver c:/djgpp/drivers/SOMETHING.grd gw 1024 gh 768
  90.                          ^^^ whatever driver works with your VGA (optional)
  91.     set BISON_SIMPLE=c:/djgpp/lib/bison.simple
  92.           ^^^ only needed if you use bison
  93.     set BISON_HAIRY=c:/djgpp/lib/bison.hairy
  94.           ^^^ only needed if you use bison
  95.     set FLEX_SKELETON=c:/djgpp/lib/flex.skeleton
  96.           ^^^ only needed if you use flex
  97.   Remember that unless you manually type these at the command line,
  98.   they won't take effect until you reboot.  Don't include the "ansi"
  99.   keyword in the "go32" variable if you don't have an ANSI.SYS driver
  100.   or equivalent.
  101. * Add your binaries directory to your PATH in C:\AUTOEXEC.BAT
  102.     SET PATH= . . . ;C:\DJGPP\BIN
  103. That's it! djgpp is now installed on your system.
  104. The GO32 environment variable:
  105. This variable controls the options available in go32 or debug32.  The
  106. syntax of this variable is:
  107.   SET GO32=[parm [value]] [parm [value]] . . .
  108. Parameters:
  109.   ansi           Use ANSI commands to control the color in debug32
  110.   mono           Use the Monochrome monitor for debugging - useful when
  111.                    debugging graphics applications
  112.   1rm            Redirect stdout (file #1) to the monochrome monitor
  113.   2rm            Redirect stderr (file #2) to the monochrome monitor
  114.   1r2            Redirect stdout (file #1) to stderr (file #2)
  115.   2r1            Redirect stderr (file #2) to stdout (file #1)
  116.   glob           enable globbing (default)
  117.   noglob         disable globbing
  118.   emu [path]     Use the specified file as the 80387 emulator
  119.   driver [path]  Use the specified file as the graphics driver
  120.   gw [width]     Default graphics width
  121.   gh [height]    Default graphics height
  122.   tw [width]     Default text width
  123.   th [height]    Default text height
  124.   nc [colors]    Number of colors (for new-style drivers only - see cbgrx*.zip)
  125. These parameters may occur in any order.
  126. Note that "1rm" and "2rm" are done before "1r2" and "2r1", so "1rm 2r1" sends
  127. stdout to the mono monitor and stderr to any redirection used.
  128. Examples:
  129.   C:\> set GO32=mono driver c:\djgpp\drivers\tseng4k.grd gw 1024 gh 768 tw 132 th 43 nc 256
  130.   C:\> set GO32=ansi
  131.   C:\> set GO32=driver c:\djgpp\drivers\tseng4k.grd ansi
  132.   C:\> set GO32=mono 1rm 2rm
  133. Deviations and Caveats:
  134. GCC/G++ deviates from the U**x version in a number of ways, mostly to
  135. accomodate deficiencies in the MS-DOS environment, and my own laziness.
  136. * An 80387 is required to do floating point.  An emulator is provided.
  137.   cc1 and cc1plus shouldn't use the 387 unless compiling floating point
  138.   code.  The environment variable "387" can override the auto-detection
  139.   routine:
  140.     SET 387=YES   to force 387 handlers to be enabled
  141.     SET 387=NO    to force 387 accesses to fault
  142.     SET 387=QUERY to get a message showing the results of the auto-detection
  143.   If no 80387 is present and the program attempts to use it, a message
  144.   indicating where the instruction is will be displayed.  To use the
  145.   387 emulator, add "emu c:\djgpp\emu387\emu387" to the GO32 environment
  146.   variable.  Specifying use of the emulator overrides the "387"
  147.   environment variable and autodetection code.
  148. * The VDISK method of allocating extended memory is supported.  The
  149.   INT 15h method is also.  When the extender runs out of conventional and
  150.   extended memory, it uses a paging file named $(GO32TMP)/pgXXXXXX.386, where
  151.   XXXX is an unspecified hex value.  This file is normally removed on exit.
  152. * Up to 128 MB of physical memory and 128 MB of disk swap space are allowed.
  153.   A 512K machine is sufficient, but very slow due to paging.
  154. * The utilies support the MS-DOS standard response file method for giving
  155.   more than 128 bytes of command line.  Example: "gcc -o foo @foo.lnk" where
  156.   foo.lnk contains a list of .o files.  Wildcard expansion (globbing) is
  157.   performed on the parameters, unless they are surrounded by single quotes.
  158.   Double quotes can be used to prevent spaces from separating arguments.
  159.   Also supported is the GNUish-DOS method of passing arguments in
  160.   environment variables.
  161. * Since MS-DOS does not distinguish case in file names, some .h files
  162.   used for C++ have had underscores prepended to them to avoid conflict
  163.   (ie: String.h conflicts with string.h, so it became _String.h).
  164. * The extender can be added to any gcc-compiled program by copying go32.exe
  165.   to be <program>.exe, where <program> is the 32-bit program.  For example,
  166.   if "hello" is a gcc-compiled a.out file, and "hello.exe" is a copy of
  167.   go32.exe, then when "hello.exe" runs, it loads the file called "hello"
  168.   in the same directory, and executes it if present.  Otherwise,
  169.   the first parameter is the executable (ie: go32 cc1plus foo.cc).
  170. * The extender can be merged to create one .exe file that is the extender
  171.   and the executable in one file, by using the stub.exe program:
  172.       copy /b stub.exe+myprog myprog.exe
  173.        -or-
  174.       aout2exe myprog
  175.   This will only work if go32.exe is in your search path, because stub.exe
  176.   runs it.  Alternatively, you can prepend go32.exe itself to an a.out file
  177.   to get a single executable (stub.exe is much smaller).  Note that if
  178.   you re-compile go32 or stub, you must strip off the symbol table first. 
  179.   Also note that aout2exe is designed to align the executable image for
  180.   better performance, so aout2exe'd programs will run faster than those
  181.   built with copy /b.
  182. * The extender runs programs at logical address 0.  A copy of the first
  183.   1 MB of physical memory (including the AT channel) is mapped to
  184.   0xE0000000 in the program's address space.  The stack grows down from
  185.   0x7FFFFFFC in the program's address space.  Data usually starts at
  186.   0x00400000.  These numbers may be different under DPMI.
  187. * The paging mechanism understands how SuperVGA's map their memory onto
  188.   the AT bus and automatically swaps pages as the program tries to
  189.   access them.  The program sees a linear range from 0xD0000000 to
  190.   0xD0100000 that corresponds to each pixel in the 256-color modes
  191.   of SuperVGAs.  To use this feature, you'll have to set the GO32
  192.   environment variable like this:
  193.     C>set go32=driver c:\djgpp\drivers\tseng4k.grd gw 640 gh 480 tw 132 th 43
  194.   These parameter pairs can be omitted or rearranged as needed.  They are
  195.   the "driver" name, default graphics width and height, and default
  196.   text width and height. Libgr.a doesn't have to be recompiled, nor
  197.   do graphics programs, when a different graphics mode is selected
  198.   (the extender handles it).  It is strongly recommended that the program
  199.   use the GR_default_graphics and GR_default_text modes to switch to
  200.   graphics or text.  These modes use the parameters specified by the
  201.   GO32 environment variable, allowing the user to select a favorite
  202.   graphics and text mode.
  203. * Symbols are stored in virtual memory, so you won't run out of symbol
  204.   space until both extended memory and the disk are all used up.  For
  205.   large programs, you might notice a slight delay while it looks up
  206.   symbols.  Programs with a lot of lines in a given module may run out
  207.   of memory as the line number table is built in real memory and transferred
  208.   to virtual memory.
  209. * Signals are not reported to the program.  However, interrupts do continue
  210.   to get serviced while in protected mode (ie: keypress, timer, etc).
  211.   CTRL-C will get you back to the debugger in debug32, and you can continue
  212.   from where you stopped.  All signals (ie: exceptions) cause debugging
  213.   traps in debug32, or general faults in go32.
  214. Copyright Information:
  215. * Source code for the GNU utilities is copyright (c) Free Software Foundation.
  216.   For more information on the FSF copyright, see their source code or write
  217.   Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  218.   A copy of their file "COPYING" is included in the docs directory.  Some of
  219.   the FSF source code has been modified to operate properly in the MS-DOS
  220.   environment.
  221. * Source code for most of libc.a are copyright (c) Regents of the University
  222.   of California.  These files include copyright information in them.  The
  223.   utilities are compiled against these libraries, and thus contain software
  224.   developed by the University of California, Berkeley, and its contributors.
  225.   Some of the BSD source code has been modified to operate properly in the
  226.   MS-DOS environment.
  227. * Any sources not falling under the copyrights of FSF or UCB (as above) are
  228.   Copyright (c) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954.
  229.   To contact me via E-Mail, sent to "dj@ctron.com".  Cabletron Systems Inc
  230.   is in no way involved with this project; I just happen to work for them
  231.   during the day.
  232. Terms and Conditions:
  233. * Source code copyright FSF is distributed under the terms of the GNU
  234.   Public General License.  See the file "COPYING" in doc.arc for more
  235.   information.  If your program links in object modules (in libc.a) that
  236.   are compiled from GNU sources, then your entire program must be
  237.   distributed under the terms of the GNU GPL as a "derived work".  These
  238.   modules are the C++ class library (including the streams classes) and
  239.   obstacks, and are restricted to the libgpl.a lbrary.  The sources in
  240.   libsrc have the copyright notices in them for the various modules.
  241. * Source code copyright UCB is distributed under the terms listed in the
  242.   UCB source code itself.
  243. * Source code copyright DJ Delorie is distributed under the terms of
  244.   the file "copying.dj".
  245. * Changes to source code copyright BSD or FSF are copyright DJ Delorie, but
  246.   fall under the terms of the original copyright.
  247. Donations may be made to any of the following:
  248.     DJ Delorie
  249.     24 Kirsten Ave
  250.     Rochester, NH  03867-2954
  251.     USA
  252.     Free Software Foundation
  253.     675 Mass Ave
  254.     Cambridge, MA  02139
  255.     USA
  256.     Computer Systems Research Group
  257.     Computer Science Division, EECS
  258.     University of California
  259.     Berkeley, California  94720
  260.     USA
  261.